Technique for dynamic discovery, update and propagation of multicast stream capabilities in a capability-aware network

ABSTRACT

Systems and methods provide for the dynamic discovery, update and propagation of multicast streams capabilities in a network. An endpoint can be coupled to a first hop router in a network environment. The first hop router can discover multicast flow characteristics information associated with the endpoint and propagate the multicast flow characteristics information of the endpoint to additional network nodes in the network environment. The first hop router and at least a portion of the additional network nodes can form one or more multicast flows associated with the endpoint through the network environment using the multicast flow characteristic information associated with the endpoint.

CROSS-REFERENCE TO RELATED APPLICATION

The instant application is a Continuation of, and claims priority to,U.S. patent application Ser. No. 17/846,564, entitled TECHNIQUE FORDYNAMIC DISCOVERY, UPDATE AND PROPAGATION OF MULTICAST STREAMCAPABILITIES IN A CAPABILITY-AWARE NETWORK, filed Jun. 22, 2022, whichclaims priority to U.S. patent application Ser. No. 16/426,377 entitledTECHNIQUE FOR DYNAMIC DISCOVERY, UPDATE AND PROPAGATION OF MULTICASTSTREAM CAPABILITIES IN A CAPABILITY-AWARE NETWORK, filed May 30, 2019,which has issued as U.S. Pat. No. 11,405,306, the contents of which areherein incorporated by reference in their entirety.

TECHNICAL FIELD

The present disclosure relates generally to multicast streams, and moreparticularly, to systems and methods for forming multicast flows throughan enterprise network.

BACKGROUND

Bandwidth usage is controlled through the management of flows. A flow isa stream of packets that all have certain characteristics, such as theport number or destination address. These flows are managed bytransport, service, or virtual machine, including zones. Flows cannotexceed the amount of bandwidth that is guaranteed to the application orto the customer's purchased share without packet drops or other errors.For flows directed to multiple receiving devices (e.g., one-to-many ormany-to-many distributions), a network can include multicastcapabilities, which is a group communication where data transmission isaddressed to a group of destination computers simultaneously.

Currently, administrators have to manually configure bandwidthrequirements for every node. For example, administrators must apply theconfiguration (or an updated configuration) to each node of the network,which can range to more than hundreds of devices that are continuouslyadded, replaced, or removed from the network. In Bandwidth AwareMulticast systems, a flow can be provisioned, but the provisioningrequires manual configuration of flow capabilities. An administratormust then configure bandwidth requirements for specific Multicastgroups, and the flows are stitched with the guaranteed bandwidth. Forexample, this can be done through link selection for reverse pathforwarding (RPF), and with the outgoing interface (OIF) bandwidthrequirements in mind. These links should not be over-provisioned.Moreover, any network failures can also be corrected with bandwidthguarantees in mind.

If any of the nodes are temporarily unreachable from the controller atthe time of the manual configuration, there will be inconsistencies inthe network configuration, and then the network can misbehave.Administrators must configure all the flow policies of all the multicastgroups that will eventually show up during the life of the networkregardless of the fact that not all the groups will be in the network atthe same time. Because a flow might take any path in the solutiondepending on bandwidth availability at time of flow inception, bandwidthawareness is required at every node in the fabric. This means thatconfiguration scale can go up dramatically, exponentially increasing theburden on Administrators to configure flows, especially if we have tospecify a different profile for any given source and group of nodesinstead of just the group of nodes as required in many cases. What isneeded is a way to configure the network for multicast flows in ascalable way without manual Administrator intervention.

BRIEF DESCRIPTION OF THE DRAWINGS

The above-recited and other advantages and features of the presenttechnology will become apparent by reference to specific implementationsillustrated in the appended drawings. A person of ordinary skill in theart will understand that these drawings only show some examples of thepresent technology and would not limit the scope of the presenttechnology to these examples. Furthermore, the skilled artisan willappreciate the principles of the present technology as described andexplained with additional specificity and detail through the use of theaccompanying drawings in which:

FIG. 1 illustrates a flowchart representation of forming multicast flowsthrough a network environment in accordance with some embodiments;

FIG. 2A shows an example schematic diagram of a multicast flow supportednetwork environment in accordance with some embodiments;

FIG. 2B shows an example schematic diagram of dynamically propagatingmulticast flow characteristics in a network environment in accordancewith some embodiments;

FIG. 3 shows an example of a system for implementing certain aspects ofthe present technology.

DESCRIPTION OF EXAMPLE EMBODIMENTS

Various examples of the present technology are discussed in detailbelow. While specific implementations are discussed, it should beunderstood that this is done for illustration purposes only. A personskilled in the relevant art will recognize that other components andconfigurations may be used without parting from the spirit and scope ofthe present technology.

Overview

Systems, methods, computer-readable media, and devices are disclosed forthe dynamic discovery, update and propagation of multicast streamscapabilities in a network. In one embodiment, a method can include anendpoint that can be coupled to a first hop router in a networkenvironment. The first hop router can discover multicast flowcharacteristics information associated with the endpoint and propagatethe multicast flow characteristics information of the endpoint toadditional network nodes in the network environment. The first hoprouter and at least a portion of the additional network nodes can formone or more multicast flows associated with the endpoint through thenetwork environment using the multicast flow characteristic informationassociated with the endpoint.

The systems, methods, computer-readable media, and devices may alsoinclude multicast flow characteristics information that can bepropagated from the first hop router to the additional network nodes inthe network environment. The multicast flow characteristics informationcan be, for example, discovered by the first hop router in response tothe endpoint being coupled to the first hop router in the networkenvironment. The multicast flow characteristics information associatedwith the endpoint can include one or a combination of an amount of datain a multicast flow associated with the endpoint, an indication ofwhether the endpoint is either or both a receiver and a source of themulticast flow associated with the endpoint, a multicast group addressof the multicast flow associated with the endpoint, bandwidthrequirements of the multicast flow associated with the endpoint, adifferentiated services code point of the multicast flow associated withthe endpoint, priority information of the multicast flow associated withthe endpoint, and a bundle index of one or more flows bundled with themulticast flow associated with the endpoint. The first hop router can beconfigured to discover the multicast flow characteristics informationfrom the endpoint using a link layer discovery protocol. For example,the link layer discovery protocol can be a media endpoint devices linklayer discovery protocol. The first hop router can also receive one ormore frames from the endpoint as part of discovering the multicast flowcharacteristics information from the endpoint using the link layerdiscovery protocol and the one or more frames can include one or acombination of a media endpoint device type-length value (TLV), anetwork policy TLV, a power management TLV, an inventory management TLV,a location TLV, a multicast group TLV, a multicast bandwidth TLV, amulticast differentiated services code point TLV, a multicast priorityTLV, and a multicast bundle-index TLV. The multicast flowcharacteristics information can also be propagated from the first hoprouter to the additional network nodes in the network environment usinga PIM flooding and source discovery (PFM-SD) mechanism. The multicastflow characteristics information can, for example, include one or acombination of a media endpoint device type-length value (TLV), anetwork policy TLV, a power management TLV, an inventory management TLV,a location TLV, a multicast group TLV, a multicast bandwidth TLV, amulticast differentiated services code point TLV, a multicast priorityTLV, and a multicast bundle-index TLV propagated from the first hoprouter to the additional network nodes using the PFM-SD mechanism. Theadditional network nodes in the network environment can also beconfigured to add one or more multicast configurations corresponding tothe multicast flow information in response to receiving the multicastflow information through the PFM-SD mechanism. One or a plurality of thefirst network nodes of the additional network nodes adjacent to thefirst hop router in the network environment can be configured to receivethe multicast flow characteristics information directly from the firsthop router according to the PFM-SD mechanism. The one or the pluralityof the first network nodes of the additional network nodes can beconfigured to forward the multicast flow characteristics information toone or a plurality of second network nodes of the additional networknodes adjacent to the one or a plurality of the first network nodesaccording to the PFM-SD mechanism. Both the one or the plurality of thefirst network nodes and the one or the plurality of the second networknodes can be configured to selectively form the one or more multicastflow associated with the endpoint based on the multicast flowcharacteristics information received according to the PFM-SD mechanism.The multicast flow characteristics information of the endpoint can alsobe updated, and the updated multicast flow characteristics informationcan be propagated to the additional network nodes in the networkenvironment using the PFM-SD mechanism.

In one embodiment, a system can include one or more processors and atleast one computer-readable storage medium having stored thereininstructions which, when executed by the one or more processors, causethe one or more processors to perform certain operations. For example,the one or more processors can couple an endpoint to a first hop routerin a network environment. Multicast flow characteristics informationassociated with the endpoint can be discovered by the first hop router.The multicast flow characteristics information of the endpoint can bepropagated from the first hop router to additional network nodes in thenetwork environment. One or more multicast flows associated with theendpoint can be formed, by the first hop router and at least a portionof the additional network nodes, through the network environment usingthe multicast flow characteristic information associated with theendpoint.

In one embodiment, a non-transitory computer-readable storage medium canhave stored therein instructions which, when executed by a processor,cause the processor to perform certain operations. For example, theprocessor can couple an endpoint to a first hop router in a networkenvironment. Multicast flow characteristics information associated withthe endpoint can be discovered by the first hop router, and themulticast flow characteristics information of the endpoint can bepropagated to additional network nodes in the network environment forforming one or more multicast flows associated with the endpoint throughthe network environment.

Example Embodiments

The disclosed technology addresses the need in the art for automatingthe process of learning multicast stream capabilities and propagatingthis information to all the nodes in a network. The disclosure hereindiscloses two parts to a proposed solution that automates the discoveryand propagation of multicast flows through a network: by a) learning ordetermining the per-flow capabilities from the host; and b) propagatingthe information of per-flow capabilities to all routers in the network.

For example, the solution can make it possible for a fabric todynamically learn per-flow capabilities from the hosts and propagatethis information throughout the network from a first hop router to allthe nodes of the network. Once all the nodes in the network have learnedthe per-flow capabilities, some methodologies can choose the best pathfor a multicast flow and stitch the flows between the source and all thereceivers.

Systems and methods accordingly provide for the dynamic discovery,update and propagation of multicast streams capabilities in a network.For example, an endpoint can be coupled to a first hop router in anetwork environment. The first hop router can discover multicast flowcharacteristics information associated with the endpoint and propagatethe multicast flow characteristics information of the endpoint toadditional network nodes in the network environment. The first hoprouter and at least a portion of the additional network nodes can formone or more multicast flows associated with the endpoint through thenetwork environment using the multicast flow characteristic informationassociated with the endpoint.

FIG. 1 illustrates a flowchart representation of dynamically formingmulticast flows through a network environment in accordance with someembodiments. Method 100 can begin by coupling an endpoint to a first hoprouter in a network environment (step 110). In multicast flows, forexample, traffic from a single source is replicated towards multiplereceivers. FIG. 2A shows an example schematic diagram of a multicastflow supported network environment in accordance with some embodiments

In FIG. 2A, the network is illustrated as a leaf-spine topology. Forease of explanation, a Leaf Spine topology is used for this embodiment,although the topology for various embodiments can be flexible andvarious deployment scenarios are possible. System 200, for example, caninclude spines (e.g., spine 210 and spine 220) and leafs (e.g., leaf202, leaf 204 . . . leaf N) within network 250. In the leaf-spinetopology, leafs can be switches or routers that can connect to sourcedevices, servers, and storage. Spines can be switches or routers towhich leafs connect. Every leaf in the leaf-spine architecture canconnect to every switch or router in the network fabric. For example,leaf 202 can, through its connection to the spines, be a router thatconnects to spine 210, spine 220, leaf 204 . . . leaf N.

For multicast flows, source device 230 can send traffic to multiplereceivers. For example, source device 230 can replicate traffic towardsreceiver device 242 and receiver device 244. In some embodiments, therouter that is attached to the source is the first hop router, which isthe first router that receives the traffic. For example, leaf 202 is thefirst hop router that receives traffic from source device 230. Anynumber of routers and/or switches can receive the traffic from sourcedevice 230 thereafter, but the routers that send traffic from network250 out to the receivers are called last hop routers. In system 200, forexample, leaf 204 and leaf N are last hop routers, since they sendtraffic towards receiver device 242 and receiver device 244,respectively. Thus, while there can be a single first hop router, therecan be any number of last hop routers and traffic will need to bereplicated for all of the last hop routers.

For example, source device 230 can send replicated traffic (for example,streaming media such as IPTV or multipoint videocasting) to receiverdevice 242 and receiver device 244 in a one-to-many distribution. In amulticast communication, data transmission from source device 230 can beaddressed to the group of destination devices (receiver device 242 andreceiver device 244) simultaneously. To do this, copies of the trafficcan be automatically created by network 230 to send to the group ofdestination devices in a single transmission. For example, the groupcommunication may either be application layer multicast or networkassisted multicast, where the latter makes it possible for the sourcedevice 230 to efficiently send to the group (receiver device 242 andreceiver device 244) in a single transmission. Copies of the traffic canbe automatically created in other network elements, such as routers,switches and cellular network base stations that make up leafs andspines, but only to network segments that currently contain members ofthe group. Network assisted multicast may be implemented at the datalink layer using one-to-many addressing and switching such as Ethernetmulticast addressing, Asynchronous Transfer Mode (ATM),point-to-multipoint virtual circuits (P2MP) or Infiniband multicast.Network assisted multicast may also be implemented at the Internet layerusing IP multicast. In IP multicast the implementation of the multicastconcept occurs at the IP routing level, where routers create optimaldistribution paths for datagrams sent to a multicast destinationaddress.

As a result, traffic from source device 230 can be replicated and/orcopied for each receiver device, such that the traffic traversing thesegment from leaf 202 to spine 210, then spine 210 to leaf 204, and thenleaf 204 to receiver device 242 is the same as the traffic traversingthe segment from leaf 202 to spine 220, then spine 220 to leaf N, andthe leaf N to receiver device 244.

In some embodiments, when receiver device 244 joins network 250 as a newreceiver device, network 250 can ensure bandwidth requirements are met.In multicast systems, problems can arise when the system does not checkfor bandwidth capabilities on a link for newly joined receivers. Forexample, whenever a receiver comes up, such as receiver device 244, thereceiver asks network 250 to join. Network 250 chooses, via acontroller, which spine to join to receiver 244—for example, network 250can choose spine 210. This, however, is a random decision. Network 250does not check if there is enough bandwidth on the link that joins leafN to spine 210.

To solve this problem, configuration service 232 of source device 230can assign a required flow for each bandwidth the multicast flows need.Then each router (leaf 202, leaf 204 . . . leaf N) can decide how muchbandwidth is on any given link and choose a link that supports thatbandwidth.

For example, configuration service 232 can generate or determinemulticast flow characteristics information that describes bandwidth andother requirements for supporting multicast flows. These multicast flowcharacteristics can be stored within multicast datastore 234.

For each endpoint that connects with a router (any of leaf 202, leaf 204. . . leaf N) in network 250, the router can discover multicast flowcharacteristics information associated with the endpoint (step 112). Themulticast flow characteristics information associated with the endpointcan include, but is not limited to, one or a combination of an amount ofdata in a multicast flow associated with the endpoint, an indication ofwhether the endpoint is either or both a receiver and a source of themulticast flow associated with the endpoint, a multicast group addressof the multicast flow associated with the endpoint, bandwidthrequirements of the multicast flow associated with the endpoint, adifferentiated services code point of the multicast flow associated withthe endpoint, priority information of the multicast flow associated withthe endpoint, and a bundle index of one or more flows bundled with themulticast flow associated with the endpoint.

For example, the first hop router can discover multicast flowcharacteristics information associated with the endpoint (step 112). Forexample, leaf 202 can discover that source device 230 is a source of amulticast flow, and that the multicast group address of the multicastflow associated with source device 230 includes receiver device 242 andreceiver device 244. In some embodiments leaf 202 can discover thebandwidth requirements for the multicast flow, such as a bandwidth of 8Mbps×4 Mbps. The multicast flow characteristics information can bediscovered by leaf 202 in response to source device 230 being coupled toleaf 202 in network 250. In some embodiments, the first hop router(e.g., leaf 202) can be configured to discover the multicast flowcharacteristics information from the endpoint (e.g., source device 230)using a link layer discovery protocol, such as a link layer discoveryprotocol that can be a media endpoint devices link layer discoveryprotocol. The discovered multicast information can be utilized by leaf202 to select the multiple paths for the replicated traffic to bedirected towards, such as through one or more specific spines (e.g.,spine 210 and/or spine 220) and then leafs (e.g., leaf 204 and/or leafN) from source device 230 to receiver device 242 and receiver device244. For example, leaf 202 can select spine 210 to direct traffictowards receiver device 242 through leaf 204 based on the associatedlinks satisfying the bandwidth requirement of 8 Mbps×4 Mbps. Similarly,leaf 202 can select spine 220 to direct traffic towards receiver device244 through leaf N based on the associated links also satisfying thebandwidth requirement of 8 Mbps×4 Mbps.

In some embodiments leaf 202 can be configured to discover the multicastflow characteristics information from source device 230 using the LinkLayer Discovery Protocol. Link Layer Discovery Protocol (LLDP) andLLDP-Media Endpoint Discovery (MED) can use Type-Length-Values (TLVs) toexchange information between network and endpoint devices. TLV elementscan be embedded, for example, in communications protocol advertisementsand used for encoding information. Each LLDP frame can contain TLVs likeChassis ID, Port ID, and Time-to-Live. This list of TLVs can be extendedto include additional information (e.x. Group information, Bandwidthinformation, Differentiated Services Code Point (DSCP) information,Priority information, Bundle index information) into the packets.

While there are several other ways to implement this discovery process,like an API call or via other mechanisms, for simplicity the oneproposed in this solution can modify the LLDP protocol based on its TLVoptions. TLVs, for example, can support media operations for Voice overInternet Protocol (VoIP) applications. For example, LLDP for MediaEndpoint Devices (LLDP-MED) can be an enhancement to LLDP that operatesbetween endpoint devices, such as IP phones, and network devices, suchas switches/routers. It can specifically provide support for voice overIP (VoIP) applications and provide media operations related TLVs.LLDP-MED can support, but is not limited to, the following example TLVs:network policy TLVs, power management TLVs, inventory management TLVs,and location TLVs.

In some embodiments, configuration service 230 can add multicastspecific TLVs. These TLVs can include, but are not limited to: groupTLVs (e.g., information, such as addresses, of source and receiverdevices), bandwidth TLVs (e.g., bandwidth requirements for segmentcreation and traffic forwarding), Differentiated Services Code Point(DSCP) TLVs (e.g., packet header values that can be used to request highpriority or best effort delivery for traffic), priority TLVs (e.g.,information such as which links and/or network devices get higher orlower priority), and bundle-index TLVs (used, for example, when amulticast stream is bundled with other groups, such as multiple audiostreams for a single video).

In some embodiments, the first hop router (leaf 202) can receive one ormore frames from the endpoint (source device 230) as part of discoveringthe multicast flow characteristics information from the endpoint (sourcedevice 230). Leaf 202 can use the link layer discovery protocol and theone or more frames that can include the multicast flow characteristicsinformation, such as one or a combination of a media endpoint deviceTLV, a network policy TLV, a power management TLV, an inventorymanagement TLV, a location TLV, a multicast group TLV, a multicastbandwidth TLV, a multicast differentiated services code point TLV, amulticast priority TLV, and/or a multicast bundle-index TLV. Themulticast flow characteristics information can then be propagated fromthe first hop router (leaf 202) to the additional network nodes (e.g.,leaf and spine devices) using a Protocol Independent Multicast (PIM)Flooding Mechanism and Source Discovery (PFM-SD) mechanism. The ProtocolIndependent Multicast (PIM) is a family of multicast routing protocolsfor networks that provide one-to-many and many-to-many distribution ofdata, and the PIM Flooding Mechanism (PFM) is a protocol used to floodmessages in the network by having each node send the message it receivedto all its neighbors.

In some embodiments, another discovery option can include an InternetGroup Management Protocol (IGMP) extension for a host to learn if thereare interested active sources. For example, the IGMP can be acommunications protocol used by hosts and adjacent routers on IPv4networks to establish multicast group memberships.

In some embodiments, some hosts may not support the discovery processdetailed above. As a fallback option, the administrator may configurethe first hop router (e.g., leaf 202) manually and still take advantageof the automated propagation process detailed in the process describedby FIG. 2B.

FIG. 2B shows an example schematic diagram of propagating multicast flowcharacteristics in a network environment in accordance with someembodiments. In some embodiments, multicast flow characteristicsinformation of an endpoint can be propagated to additional network nodesin the network environment (step 114). For example, the multicast flowcharacteristics information can be propagated from source device 230 tothe first hop router (leaf 202) to the other network nodes in network250, such as leaf 204, leaf N, spine 210, and spine 220. In someembodiments, the multicast flow characteristics information, which canbe stored in multicast datastore 234 at source device 230, can bepropagated from source device 230 to the first hop router (leaf 202),and then can be propagated to the additional network nodes in thenetwork environment using the Protocol Independent Multicast (PIM)Flooding Mechanism and Source Discovery (PFM-SD) mechanism, such thateach node in the network environment can be configured to support themulticast flow requirements for source device 230. For example, themulticast flow characteristics information can be replicated and copiedfrom source device 230 to leaf 202, and then replicated and copied tospine 210 and spine 220, and then replicated and copied to leaf 204 andleaf N, etc.

In some embodiments, the PFM-SD protocol can send a message to leaf andspine devices within network 250 that specify that a specific source,such as source device 230, needs to send traffic via specific groupsthat include receiver device 242 and receiver device 244. For example,spine 210 and spine 220 can receive the message. Spine 210 can then, forexample, store the content of the message, which can include multicastflow characteristics information, and then send that content to everyleaf device (e.g., leaf 204 and leaf N) except the leaf that it receivedit from (e.g., leaf 202). This process can be repeated for spine 220,which can send the content of the message, including the multicast flowcharacteristics information, to every leaf device (e.g., leaf 204 andleaf N) except the leaf that it received it from (e.g., leaf 202). Thisprocess floods network 250. In some embodiments, all the devices withinnetwork 250 receive the multicast flow characteristics information. Inother embodiments, only devices within the groups (e.g., segments whichinclude the receiver devices 242, 244) that matter receive the multicastflow characteristics information. The message can be a configurationmessage with configuration capabilities for each leaf or spine.

Accordingly, in some embodiments, system 200 can propagate theconfiguration for multicast flows to all the nodes and/or to all thenodes within the group (e.g., segments which include the receiverdevices 242, 244). For example, on each router, a required bandwidth foreach multicast group can be specified. So whenever a receiver device(e.g., receiver device 242) through its last hop router (e.g., leaf 204)wants to join network 250 and receive traffic from the source device(e.g., source device 230), an appropriate spine can be selected based onwhich link to send the join request. Based on the bandwidth and othermulticast flow characteristics information propagated from source device230, the available bandwidth left on the links to each spine and leafcan be checked by the router (e.g., leaf 204) based on how muchbandwidth is currently in use. If there is enough available bandwidth onparticular links, then those links will be chosen by the router (e.g.,leaf 204) over links that do not have enough available bandwidth.

Similarly, when receiver device 244 requests to join network 250, whichcan be a bandwidth managed network, in order to receive traffic fromsource device 230, the multicast flow characteristics information can bepropagated to all the spine and leaf devices so that the flow toreceiver 244 can be consistent with the multicast flow characteristicsinformation for source device 230. For example, leaf 202 can propagatethe multicast flow characteristics to spine 210 through path 212A and tospine 220 through path 222A. Each spine can then propagate the multicastflow characteristics to its leafs; e.g., spine 210 can send themulticast flow characteristics to leaf 204 through path 212B and leaf Nthrough path 212C; and spine 220 can send the multicast flowcharacteristics to leaf N through path 222B.

In embodiments, the first hop router can determine and select whichnodes in network 250 to direct traffic towards in order to satisfy themulticast flow characteristics requirements. For example, leaf 202 candecide that, based on the multicast flow characteristics informationneeded by source device 230, the flow to receiver device 244 shouldfollow links in which the last hop router is leaf N. Leaf 202 can alsodecide that a path through spine 210, rather than through spine 220,provides the links with the best match to the multicast flowcharacteristics information. Accordingly, leaf 202 will configurenetwork 250 to send traffic from source device 230 towards spine 210through path 212A, and then towards leaf N through path 212C. This path,for example, can be determined and/or selected by leaf 202 based on thelinks (e.g., link 212A and link 212C) satisfying the bandwidthrequirements specified in the multicast flow characteristics informationstored within multicast datastore 234. The decision and/or selection bythe first hop router (e.g., leaf 202) based on the propagated multicastflow characteristics information from source device 230 can enable thefirst hop router to self-configure and/or self-adjust multicast trafficflows without the need for a controller or administrator. In fact, sinceevery device within network 250 has the propagated multicast flowcharacteristics information from source device 230, any device (e.g.,leaf or spine) can self-configure and/or self-adjust multicast trafficflows without the need for a controller or administrator. As a result,even if the controller or administrator or other device within network250 loses connection to a spine or router or any device within network250, all the multicast flow characteristics information is adjusted viaitself (once a router [e.g., leaf 202] floods the network with themulticast flow characteristics information). The configurationinformation and capabilities can come from the source device 230 itself.

In some embodiments, leaf 202 can use the PIM Flooding Mechanism (PFM)to distribute source information (multicast flow characteristicsinformation) into the network 250. Along with the distribution of sourceinformation, source discovery messages can also distribute mediaspecific attributes like the ones needed to configure a capability-awaremulticast network. Since PFM is the protocol used to flood messages inthe network 250 by having each node send the message it received to allits neighbors, leaf 202 can learn Host multicast capabilities via thatmechanism and can send the PIM Flooding Mechanism Source Discovery(PFM-SD) information. This can require the addition of new TLVs in thePFM-SD packets to support media properties. Every router can thenexamine the PFM-SD and add the configuration information contained init, such as the multicast flow characteristics information. Each routercan then transmit the multicast flow characteristics information on allof its PIM neighbors. In that way, every router along the path learnsthe per-flow capabilities. When the last hop router (leaf N), forexample, receives the PFM-SD through the reverse path forwarding (RPF)path towards source device 230, leaf N can now choose the best link tojoin the shortest path tree (SPT) using only links that have enoughbandwidth available.

In some embodiments, the periodic PFM-SD can refresh the data learned bythe first hop router. This can make it easy to update the per-streamcapabilities since no controller is involved in the operation and thenetwork adjusts itself simply via protocol exchange messages. However, acontroller may still need to change the parameters on the sourceendpoints that will then be advertised in the LLDP packets.

In some embodiments, based on the multicast flow characteristicsinformation being propagated to the network nodes (leaf and spinedevices), one or more multicast flows associated with the endpoint(e.g., source device 230) can be formed through the network environmentusing the multicast flow characteristic information associated with theendpoint (step 116). The one or more multicast flows can be formed, forexample, by the first hop router and at least a portion of theadditional network nodes, where the additional network nodes in thenetwork environment can be configured to add one or more multicastconfigurations corresponding to the multicast flow information inresponse to receiving the multicast flow information through PFM-SDmechanism. For example, leaf 202, spine 210, and leaf 204 can form afirst multicast flow to receiver device 242 based on receiving themulticast flow information from source device 230 through the PFM-SDmechanism. Similarly, leaf 202, spine 220, and leaf N can form a secondmulticast flow to receiver device 244 based on receiving the multicastflow information from source device 230 through the PFM-SD mechanism. Inboth cases, each leaf and spine device can configure itself for themulticast flow based on receiving the propagated multicast flowinformation from source device 230.

In some embodiments, one or more network nodes (not pictured, such asone or more leaf devices between leaf 202 and a last hop router, such asleaf N) of the additional network nodes can be adjacent to the first hoprouter in the network environment. In some embodiments, these adjacentnetwork nodes can be configured to receive the multicast flowcharacteristics information directly from the first hop router accordingto the PFM-SD mechanism. The adjacent nodes can then be configured toforward the multicast flow characteristics information to a second setof network nodes of the additional network nodes adjacent to theadjacent network nodes according to the PFM-SD mechanism. This processcan continue until all the network nodes have received the multicastflow characteristics information, and a portion of the network nodes canbe configured to selectively form the one or more multicast flowassociated with the endpoint based on the multicast flow characteristicsinformation received according to the PFM-SD mechanism. In someembodiments, only the nodes within a segment containing the receiverdevices 242, 244 can receive and forward (to other nodes within thesegment) the multicast flow characteristics information.

For each flow in the multicast, multiple parameters relating to themulticast flow characteristics information may need to be configured oneach router (e.g., the same configuration can be replicated on all therouters). In order to avoid having to configure every time a group comesonto network 250, the multicast flow characteristics information forsource device 230 can be learned on leaf 202 from the host itself. Themulticast flow characteristics information can include information thattells leaf 202 that source device 230 needs to send leaf 202 sometraffic. In some embodiments, the multicast flow characteristicsinformation can tell leaf 202 that source device 230 plans to sendtraffic on a specific group (e.g., a group containing receiver device242 and receiver device 244). The multicast flow characteristicsinformation can furthermore tell leaf 202 that the traffic will use acertain amount of bandwidth, as well as the priority the traffic will beusing. Once leaf 202 learns about these traffic properties, it can thendistribute this information to all the nodes (or relevant nodes withinthe group) on network 250.

As a result, if receiver device 244 requests to join network 250 throughleaf N, then leaf N already knows the multicast flow characteristicsinformation associated with traffic from source device 230. Using thisinformation, leaf N can choose spine 210 or spine 220 that can provide alink with enough bandwidth.

In some embodiments, the multicast flow characteristics information ofthe endpoint can be updated. For example, configuration service 232 ofsource device 230 may update its multicast flow characteristicsinformation stored within multicast datastore 234. The updated multicastflow characteristics information can be propagated to leaf 202 and theadditional network nodes in the network environment using the PFM-SDmechanism. In this way, network 250 can self-adjust to any updates tothe multicast flow characteristics information without the need for acentral controller or configuration from an Administrator.

The techniques described above, such as the discovery and propagationprocesses, can make the discovery of media flow capabilities simple andautomatic. It can require no configuration by an Administrator to bepushed on the routers in the network in order to work (which can betedious and prone to error for an Administrator managing large and everchanging networks), and it has a single source of truth (since thepropagation starts from the first hop router). This avoids anyinconsistencies of the network configuration across multiple routersthat are present in previous solutions. Moreover, the techniques can beapplied to any type of network topology, not just the Leaf-Spine networktopology in the example embodiments. Customers can now fully orchestratethe operations of their media network, removing a huge part of themanual configuration process that is required today for IPFM (and ingeneral any capability-based multicast network) embedding theseconfigurations in the protocol itself. Customers also can have a singlepoint of configuration of the flow parameters instead of potentiallyhundreds of them, since the discovery of these capabilities uses thehost itself.

FIG. 3 shows an example of computing system 300 in which the componentsof the system, such as the components of FIGS. 2A-2B, are incommunication with each other using connection 305. Connection 305 canbe a physical connection via a bus, or a direct connection intoprocessor 310, such as in a chipset architecture. Connection 305 canalso be a virtual connection, networked connection, or logicalconnection.

In some embodiments computing system 300 is a distributed system inwhich the functions described in this disclosure can be distributedwithin a datacenter, multiple datacenters, a peer network, etc. In someembodiments, one or more of the described system components representsmany such components each performing some or all of the function forwhich the component is described. In some embodiments, the componentscan be physical or virtual devices.

Example system 300 includes at least one processing unit (CPU orprocessor) 310 and connection 305 that couples various system componentsincluding system memory 315, such as read only memory (ROM) and randomaccess memory (RAM) to processor 310. Computing system 300 can include acache of high-speed memory connected directly with, in close proximityto, or integrated as part of processor 310.

Processor 310 can include any general purpose processor and a hardwareservice or software service, such as services 332, 334, and 336 storedin storage device 330, configured to control processor 310 as well as aspecial-purpose processor where software instructions are incorporatedinto the actual processor design. Processor 310 may essentially be acompletely self-contained computing system, containing multiple cores orprocessors, a bus, memory controller, cache, etc. A multi-core processormay be symmetric or asymmetric.

To enable user interaction, computing system 300 includes an inputdevice 345, which can represent any number of input mechanisms, such asa microphone for speech, a touch-sensitive screen for gesture orgraphical input, keyboard, mouse, motion input, speech, etc. Computingsystem 300 can also include output device 335, which can be one or moreof a number of output mechanisms known to those of skill in the art. Insome instances, multimodal systems can enable a user to provide multipletypes of input/output to communicate with computing system 300.Computing system 300 can include communications interface 340, which cangenerally govern and manage the user input and system output. There isno restriction on operating on any particular hardware arrangement andtherefore the basic features here may easily be substituted for improvedhardware or firmware arrangements as they are developed.

Storage device 330 can be a non-volatile memory device and can be a harddisk or other types of computer readable media which can store data thatare accessible by a computer, such as magnetic cassettes, flash memorycards, solid state memory devices, digital versatile disks, cartridges,random access memories (RAMs), read only memory (ROM), and/or somecombination of these devices.

The storage device 330 can include software services, servers, services,etc., that when the code that defines such software is executed by theprocessor 310, it causes the system to perform a function. In someembodiments, a hardware service that performs a particular function caninclude the software component stored in a computer-readable medium inconnection with the necessary hardware components, such as processor310, connection 305, output device 335, etc., to carry out the function.

For clarity of explanation, in some instances the present technology maybe presented as including individual functional blocks includingfunctional blocks comprising devices, device components, steps orroutines in a method embodied in software, or combinations of hardwareand software.

Any of the steps, operations, functions, or processes described hereinmay be performed or implemented by a combination of hardware andsoftware services or services, alone or in combination with otherdevices. In some embodiments, a service can be software that resides inmemory of a client device and/or one or more servers of a contentmanagement system and perform one or more functions when a processorexecutes the software associated with the service. In some embodiments,a service is a program, or a collection of programs that carry out aspecific function. In some embodiments, a service can be considered aserver. The memory can be a non-transitory computer-readable medium.

In some embodiments the computer-readable storage devices, mediums, andmemories can include a cable or wireless signal containing a bit streamand the like. However, when mentioned, non-transitory computer-readablestorage media expressly exclude media such as energy, carrier signals,electromagnetic waves, and signals per se.

Methods according to the above-described examples can be implementedusing computer-executable instructions that are stored or otherwiseavailable from computer readable media. Such instructions can comprise,for example, instructions and data which cause or otherwise configure ageneral purpose computer, special purpose computer, or special purposeprocessing device to perform a certain function or group of functions.Portions of computer resources used can be accessible over a network.The computer executable instructions may be, for example, binaries,intermediate format instructions such as assembly language, firmware, orsource code. Examples of computer-readable media that may be used tostore instructions, information used, and/or information created duringmethods according to described examples include magnetic or opticaldisks, solid state memory devices, flash memory, USB devices providedwith non-volatile memory, networked storage devices, and so on.

Devices implementing methods according to these disclosures can comprisehardware, firmware and/or software, and can take any of a variety ofform factors. Typical examples of such form factors include servers,laptops, smart phones, small form factor personal computers, personaldigital assistants, and so on. Functionality described herein also canbe embodied in peripherals or add-in cards. Such functionality can alsobe implemented on a circuit board among different chips or differentprocesses executing in a single device, by way of further example.

The instructions, media for conveying such instructions, computingresources for executing them, and other structures for supporting suchcomputing resources are means for providing the functions described inthese disclosures.

Although a variety of examples and other information was used to explainaspects within the scope of the appended claims, no limitation of theclaims should be implied based on particular features or arrangements insuch examples, as one of ordinary skill would be able to use theseexamples to derive a wide variety of implementations. Further andalthough some subject matter may have been described in languagespecific to examples of structural features and/or method steps, it isto be understood that the subject matter defined in the appended claimsis not necessarily limited to these described features or acts. Forexample, such functionality can be distributed differently or performedin components other than those identified herein. Rather, the describedfeatures and steps are disclosed as examples of components of systemsand methods within the scope of the appended claims.

What is claimed is:
 1. A method comprising: discovering, by a first hoprouter, multicast flow characteristics information associated with anendpoint, the multicast flow characteristics including a firsttype-length value (TLV) and a second TLV; propagating, by the first hoprouter, the multicast flow characteristics information of the endpointto additional network nodes, wherein a set of the additional networknodes adds one or more multicast configurations in response to receivingthe propagated multicast flow characteristics information of theendpoint; and forming, by the first hop router and at least a portion ofthe set of the additional network nodes, one or more multicast flows,wherein the one or more multicast flows are formed based on themulticast flow characteristic information associated with the endpoint.2. The method of claim 1, wherein the first or second TLV is a per-flowdata rate of the endpoint.
 3. The method of claim 1, wherein the firsthop router is configured to discover the multicast flow characteristicsinformation from the endpoint using a link layer discovery protocol. 4.The method of claim 3, wherein the link layer discovery protocol is amedia endpoint devices link layer discovery protocol.
 5. The method ofclaim 1, wherein the first or second TLV include one or a combination ofa media endpoint device TLV, a network policy TLV, a power managementTLV, an inventory management TLV, a location TLV, a multicast group TLV,a multicast bandwidth TLV, a multicast differentiated services codepoint TLV, a multicast priority TLV, and a multicast bundle-index TLV.6. The method of claim 1, wherein the multicast flow characteristicsinformation is propagated from the first hop router to the additionalnetwork nodes using a Protocol Independent Multicast (PIM) flooding andsource discovery (PFM-SD) mechanism.
 7. The method of claim 6, whereinthe additional network nodes are configured to add the one or moremulticast configurations corresponding to the multicast flow informationin response to receiving the multicast flow information through PFM-SDmechanism.
 8. The method of claim 6, wherein one or a plurality of firstnetwork nodes of the additional network nodes adjacent to the first hoprouter are configured to receive the multicast flow characteristicsinformation directly from the first hop router according to the PFM-SDmechanism.
 9. The method of claim 8, wherein the one or the plurality ofthe first network nodes of the additional network nodes are configuredto forward the multicast flow characteristics information to one or aplurality of second network nodes of the additional network nodesadjacent to the one or a plurality of the first network nodes accordingto the PFM-SD mechanism.
 10. The method of claim 8, wherein both the oneor the plurality of the first network nodes and the one or the pluralityof the second network nodes are configured to selectively form the oneor more multicast flow associated with the endpoint based on themulticast flow characteristics information received according to thePFM-SD mechanism.
 11. The method of claim 6, further comprising:updating the multicast flow characteristics information of the endpoint;and propagating the updated multicast flow characteristics informationto the additional network nodes using the PFM-SD mechanism.
 12. A systemcomprising: one or more processors; and at least one computer-readablestorage medium having stored therein instructions which, when executedby the one or more processors, cause the one or more processors to:discover multi cast flow characteristics information associated with anendpoint, the multicast flow characteristics including a firsttype-length value (TLV) and a second TLV; propagating the multicast flowcharacteristics information of the endpoint to additional network nodes,wherein a set of the additional network nodes adds one or more multicastconfigurations in response to receiving the propagated multicast flowcharacteristics information of the endpoint; and forming one or moremulticast flows, wherein the one or more multicast flows are formedbased on the multicast flow characteristic information associated withthe endpoint.
 13. The system of claim 12, wherein the first or secondTLV is a per-flow data rate of the endpoint.
 14. The system of claim 12,wherein the system is further configured to discover the multicast flowcharacteristics information from the endpoint using a link layerdiscovery protocol.
 15. The system of claim 14, wherein the link layerdiscovery protocol is a media endpoint devices link layer discoveryprotocol.
 16. The system of claim 12, wherein the first or second TLVinclude one or a combination of a media endpoint device TLV, a networkpolicy TLV, a power management TLV, an inventory management TLV, alocation TLV, a multicast group TLV, a multicast bandwidth TLV, amulticast differentiated services code point TLV, a multicast priorityTLV, and a multicast bundle-index TLV.
 17. The system of claim 12,wherein the multicast flow characteristics information is propagated tothe additional network nodes using a Protocol Independent Multicast(PIM) flooding and source discovery (PFM-SD) mechanism.
 18. Anon-transitory computer-readable storage medium having stored thereininstructions which, when executed by a processor, cause the processorto: discover multicast flow characteristics information associated withan endpoint, the multicast flow characteristics including a firsttype-length value (TLV) and a second TLV; propagating the multicast flowcharacteristics information of the endpoint to additional network nodes,wherein a set of the additional network nodes adds one or more multicastconfigurations in response to receiving the propagated multicast flowcharacteristics information of the endpoint; and forming one or moremulticast flows, wherein the one or more multicast flows are formedbased on the multicast flow characteristic information associated withthe endpoint.
 19. The non-transitory computer-readable storage medium ofclaim 18, wherein the first or second TLV is a per-flow data rate of theendpoint.
 20. The non-transitory computer-readable storage medium ofclaim 18, wherein the multicast flow characteristics information ispropagated using a Protocol Independent Multicast (PIM) flooding andsource discovery (PFM-SD) mechanism.